Unit testing (MSTest)

Descripción

Como hacer unit testing en .net usando el framework de testing MSTest.

Metodo

Partimos de un programa Calculator con el siguiente código:

using CalcLib;

Calculator calculator = new();

Console.WriteLine(calculator.Add(3, 7));

La clase Calculator está definida así:

namespace CalcLib
{
    public class Calculator
    {
        public double Add (int num1, int num2)
        {
            return num1 + num2;
        }
    }
}

A continuación crearemos un test para probar la función Add de la clase Calculator.

Creamos un nuevo proyecto con la plantilla MSTest Test Project:

Por defecto el test se crea con el siguiente código:

A continuación lo que tenemos que hacer es añadir la referencía de la clase que queremos probar en el test al proyecto del test, seleccionamos el proyecto y hacemos click en Project>Add Project Reference:

A continuación añadimos el namespace en la clase del test:

using CalcLib;

y en el método del test añadimos el test en si:

Calculator calculator = new ();
Assert.AreEqual(9, calculator.Add(2, 7));

El código final de la clase del test nos queda tal que así:

using Microsoft.VisualStudio.TestTools.UnitTesting;
using CalcLib;

namespace CalcTest
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestMethod1()
        {
            Calculator calculator = new ();

            Assert.AreEqual(9, calculator.Add(2, 7));
        }
    }
}

Ya tendríamos nuestro test listo comprobando que la suma de 2 y 7 da 9, eso es lo que debería de devolver la funcion Add, para ejecutar el test y comprobar que es correcto nos vamos a Test > Run All Test, si el test se ejecuta correctamente se mostrará en verde:

Si forzamos el test para que falle veremos algo como esto, indicandonos el valor obtenido y el esperado:

Tags

C# | .Net | test